<?php
namespace app\controller;

use think\annotation\route\Route;
use think\annotation\route\Group;
use app\BaseController;
use app\model\User;
use Firebase\JWT\JWT;
use think\facade\Request;


#[Group("api")]
class LoginController extends BaseController {

    #[Route("POST", "login")]
    public function login() {
         $user= User::where('name', Request::param('username'))->where('password', Request::param('password'))->find();
         if (!$user) {
             return json(['msg' => '用户名和密码错误'], 401);
         }
        $key = '!@#$%*&';         //这里是自定义的一个随机字串，应该写在config文件中的，解密时也会用，相当    于加密中常用的 盐  salt
        $token = array(
            "iss" => '',         	//签发者 可以为空
            "aud" => '',         	//面象的用户，可以为空
            "iat" => time(),      	//签发时间
            "nbf" => time() + 3,      	//在什么时候jwt开始生效  （这里表示生成100秒后才生效）
            "exp" => time() + 3000, //token 过期时间
            'data' => $user			//记录的userid的信息，这里是自已添加上去的，如果有其它信息，可以再添加数组的键值对
        );
         $jwt = JWT::encode($token, $key, "HS256");
         $result = ['token' => $jwt];//根据参数生成了 token
         return json($result);
    }




}
